/* IF2030 - Algorirma dan Struktur Data */
/* Kelas/Kelompok/Tahun  : 03/09/2011 */
/* Tanggal   : 2 Desember 2011 */
/* File      : string.h */
/* Deskripsi : Tipe bentukan string */

#ifndef STRING_H

#include "../boolean/boolean.h"
#define STRING_H

#define NMAXSTR 40
#define NMAXLINE 252

typedef char string[NMAXSTR+1];
/* string adalah array of char yg panjangnya NMAXSTR karakter
   dan selalu diakhiri dengan '\0' untuk string
   yang telah didefinisikan */

typedef char line[NMAXLINE+1];
/* line adalah array of char yg panjangnya NMAXLINE karakter
   dan selalu diakhiri dengan '\0' untuk line
   yang telah didefinisikan */


int strlength(char *str);
/* Menghasilkan banyak karakter yang ada pada str sampai ditemukan
   karakter '\0' untuk pertama kalinya */

int strcompare(const char * str1, const char * str2);
/* Membandingkan str1 dan str2.
   Fungsi ini membandingkan karakter pertama dari str1 dan str2.
   Jika sama, akan dilanjutkan dengan membandingkan pasangan karakter berikutnya,
   sampai ditemukan karakter berbeda atau ditemukan karakter '\0'
   Menghasilkan 0, jika str1 sama dengan str2 */

char *strcopy (char *destination, const char *source);
/* Menyalin source ke destination, termasuk karakter erminating null character.
   Ukuran destination harus mencukupi */

boolean isContain(char *str, char chr);
/* Menghasilkan true jika terdapat char chr dalam str */

boolean isBlank(char *str);
/* Menghasilkan true jika karakter pertama str adalah null-terminated string */

char IntToChar(int i);
/* Menghasilkan nilai char dari suatu integer 0..9 */

#endif
